<?php
	require_once '../ServingPeriod.php';
	require_once '../ServeIndicator.php';
	//
	class Campaign
	{
		//Setup.
			//Details.
		private $uId;
		private $sStat;
		private $sName;
		private $sMediaAgencyName;
		private $sAdvName;
		private $sBrandName;
		private $sPubSite;
		private $servingPeriod;
		private $iTotalCntrs;
		private $iBookedImps;
		private $sServeIndicator;
		private $sComment;
		private $aObjectives;
		private $aAudiences;
			//Notes.
		//Contacts.
		private $aMediaAgencyContacts;
		private $aCreativeAgencyContacts;
		private $bAllowCreativeAgencyContactsToViewReports;
		private $aPubContacts;
		//Plans.
			//Ads.
		private $ads;
		public function __construct()
		{
			//Setup.
				//Details.
			$this->setId(0);
			$this->setStatus('');
			$this->setName('');
			$this->setMediaAgencyName('');
			$this->setAdvertiserName('');
			$this->setPublisherSite('');
			$this->setBrandName('');
			$this->setServingPeriod(new ServingPeriod());
			$this->setTotalContainers(0);
			$this->setBookedImpressions(0);
			$this->setServeIndicator(ServeIndicator::KEEP_SERVING);
			$this->setComment('');
			$this->setObjectives(new array());
			$this->setAudiences(new array());
				//Notes.
			//Contacts.
			$this->setMediaAgencyContacts(new array());
			$this->setCreativeAgencyContacts(new array());
			$this->setAllowCreativeAgencyContactsToViewReports(false);
			$this->setPublisherContacts(new array());
			//Plans.
				//Ads.
			$this->setAds(new array());
		}
		public function setBrandName($value){$this->sBrandName = $value;}
		public function getBrandName(){return sBrandName;}
		//
		public function setPublisherSite($value){$this->sPubSite = $value;}
		public function getPublisherSite(){return array_slice($this->sPubSite, 0);}
		//
		public function setAds($value){$this->ads = $value;}
		public function getAds(){return array_slice($this->ads, 0);}
		//
		public function setMediaAgencyContacts($value)
		{
			$this->aMediaAgencyContacts = $value;
		}
		public function getMediaAgencyContacts()
		{
			return array_slice($this->aMediaAgencyContacts, 0);
		}
		//
		public function setCreativeAgencyContacts($value)
		{
			$this->aCreativeAgencyContacts = $value;
		}
		public function getCreativeAgencyContacts()
		{
			return array_slice($this->aCreativeAgencyContacts, 0);
		}
		//
		public function setAllowCreativeAgencyContactsToViewReports($value)
		{
			$this->bAllowCreativeAgencyContactsToViewReports = $value;
		}
		public function getAllowCreativeAgencyContactsToViewReports()
		{
			return $this->bAllowCreativeAgencyContactsToViewReports;
		}
		//
		public function setPublisherContacts($value)
		{
			$this->aPubContacts = $value;
		}
		public function getPublisherContacts()
		{
			return array_slice($this->aPubContacts, 0);
		}
		//
		public function setId($value){$this->uId = $value;}
		public function getId(){return $this->uId;}
		//
		public function setStatus($value){$this->sStat = $value;}
		public function getStatus(){return $this->sStat;}
		//
		public function setName($value){$this->sName = $value;}
		public function getName(){return $this->getName();}
		//
		public function setMediaAgencyName($value)
		{
			$this->sMediaAgencyName = $value;
		}
		public function getMediaAgencyName()
		{
			return $this->sMediaAgencyName;
		}
		//
		public function setAdvertiserName($value){$this->sAdvName = $value;}
		public function getAdvertiserName(){return $this->sAdvName;}
		//
		public function setServingPeriod($value){$this->servingPeriod = $value;}
		public function getServingPeriod(){return $this->servingPeriod;}
		//
		public function setTotalContainers($value){$this->iTotalCntrs = $value;}
		public function getTotalContainers(){return $this->iTotalCntrs;}
		//
		public function setBookedImpressions($value){$this->iBookedImps = $value;}
		public function getBookedImpressions(){return $this->iBookedImps;}
		//
		public function setServeIndicator($value)
		{
			$this->sServeIndicator = $value;
		}
		public function getServeIndicator()
		{
			return $this->sServeIndicator;
		}
		//
		public function setComment($value){$this->sComment = $value;}
		public function getComment(){return $this->sComment;}
		//
		public function setObjectives($value){$this->aObjectives = $value;}
		public function getObjectives(){return array_slice($this->aObjectives, 0);}
		//
		public function setAudiences($value){$this->aAudiences = $value;}
		public function getAudiences(){return array_slice($this->aAudiences, 0);}
	}
?>